Importing all the libraries required

In [27]:
import fastlmm
import h5py
import numpy as np
import time
# set degree of verbosity (adapt to INFO for more verbose output)
import logging
logging.basicConfig(level=logging.WARNING)

# set figure sizes
import pylab
pylab.rcParams['figure.figsize'] = (10.0, 8.0)

# set display width for pandas data frames
import pandas as pd
pd.set_option('display.width', 1000)

# import the algorithm
from fastlmm.association import single_snp
from pysnptools.snpreader import Pheno, Bed, SnpData
import fastlmm.util.util as flutil
from pysnptools.snpreader import SnpHdf5 
from fastlmm.association import single_snp_linreg
In [2]:
bed_fn = "imputed_snps_binary.hdf5"
pheno_fn = "phenotype.txt"

#Loading the SNP data
f = h5py.File("1001_SNP_MATRIX/imputed_snps_binary.hdf5","r")

#Retrieving the data from the hdf5 snp file.
snps = f["snps"]
accessions = f["accessions"]
positions = f["positions"]
In [3]:
# Details of chromosomes
chr_regions = positions.attrs["chr_regions"]
indices_for_chr1 = chr_regions[0]
print(indices_for_chr1)
[      0 2597825]
In [4]:
#Accessions which are available in 1001genomes org with their respective ids
df = pd.read_csv("AvailableMappedAccessions.csv")

#indices list of accessions that will be used for GWAS
accessions = accessions[:]
accs = accessions.astype(np.int64)
indices_of_accessions = [ np.where(accs == df["Accession Id"][i])[0][0] for i in range(len(df))]
indices_of_accessions = sorted(indices_of_accessions)
print (indices_of_accessions, len(indices_of_accessions))
([174, 313, 322, 325, 330, 331, 336, 337, 339, 351, 352, 357, 360, 363, 365, 372, 374, 383, 394, 418, 423, 464, 472, 473, 484, 502, 543, 546, 551, 560, 562, 564, 568, 579, 1049], 35)
In [5]:
#Snp data for creating SNP data matrix
#We need iid, sid, and vals
#iid is required to create SNP Data

iid = [[i+1, sorted(df["Accession Name"])[i]] for i in range(len(df))]
print ("iids : ", iid)

genes = snps[:, indices_of_accessions]
#Filtering genes for chromosome 1
genes = genes[: indices_for_chr1[-1]]
threshold= 5

genes = np.transpose(genes)
alleles = np.where(genes.sum(axis=0) >threshold)
snps = genes[:,alleles[0]]
print ("snps shape", snps.shape)
('iids : ', [[1, 'Aa-0'], [2, 'Bla-1'], [3, 'Bs-1'], [4, 'Bu-0'], [5, 'Co'], [6, 'Col-0'], [7, 'Eds-1'], [8, 'Ei-2'], [9, 'Fei-0'], [10, 'Gu-0'], [11, 'H55'], [12, 'HR-10'], [13, 'Hs-0'], [14, 'Is-0'], [15, 'Jm-0'], [16, 'Kz-13'], [17, 'Kz-9'], [18, 'Ler-1'], [19, 'Lu-1'], [20, 'Mir-0'], [21, 'Ms-0'], [22, 'PHW-2'], [23, 'Pla-0'], [24, 'San-2'], [25, 'Sf-2'], [26, 'Sorbo'], [27, 'Sq-1'], [28, 'Stw-0'], [29, 'Ta-0'], [30, 'Ts-5'], [31, 'Ull1-1'], [32, 'Uod-1'], [33, 'Utrecht'], [34, 'Ws-2'], [35, 'Zdr-1']])
('snps shape', (35, 242403))
In [6]:
number_of_genes_discarded = genes.shape[1] - snps.shape[1]
print ("number of genes discarded", number_of_genes_discarded)
('number of genes discarded', 2355422)
In [7]:
#sid is required to create SNP data
sid = range(snps.shape[1])
print(sid[:5])
[0, 1, 2, 3, 4]
In [8]:
#it's important create snps positions
pos = []
for i in sid:
    pos.append([1,i, i])
pos = np.array(pos) #Converting into a numpy array
In [9]:
snps = snps.astype(np.float64)
snps.dtype
Out[9]:
dtype('float64')
In [10]:
#Creating SNP Data
snp_data = SnpData(iid =  iid, sid = sid,
                                val = snps, pos = pos)
In [58]:
snp_data.sid_count
Out[58]:
242403
In [12]:
snp_data.read().val[0]
Out[12]:
array([0., 1., 1., ..., 1., 0., 1.])
In [13]:
#Working with Phenotypes
pheno_fn = Pheno("phenotypes.txt")
In [14]:
#Verifying Phenotypes
# pheno_vals = pheno_fn.read().val
# print(pheno_vals)
In [15]:
results_dataframe = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
In [17]:
results_dataframe.head()
Out[17]:
sid_index SNP Chr GenDist ChrPos PValue SnpWeight SnpWeightSE SnpFractVarExpl Mixing Nullh2
0 208167 208167 1 208167 208167 0.000036 1.573423 0.329901 0.638780 0.0 0.0
1 208171 208171 1 208171 208171 0.000036 1.573423 0.329901 0.638780 0.0 0.0
2 65806 65806 1 65806 65806 0.000044 -1.560649 0.331735 0.633594 0.0 0.0
3 65810 65810 1 65810 65810 0.000044 -1.560649 0.331735 0.633594 0.0 0.0
4 65811 65811 1 65811 65811 0.000044 -1.560649 0.331735 0.633594 0.0 0.0
In [20]:
# manhattan plot
import pylab
import fastlmm.util.util as flutil
flutil.manhattan_plot(results_dataframe[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
In [29]:
#Working with Phenotypes For feature 2
pheno_fn = Pheno("phenotypesFeature2.txt")

t0 = time.time()
results_dataframe_feature2 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")
('Time taken for analysis =', '59.8905010223', 'seconds')
In [31]:
flutil.manhattan_plot(results_dataframe_feature2[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
In [33]:
#Working with Phenotypes For feature 3
pheno_fn = Pheno("phenotypesFeature3.txt")

t0 = time.time()
results_dataframe_feature3 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature3[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.8193461895', 'seconds')
In [35]:
#Working with Phenotypes For feature 4
pheno_fn = Pheno("phenotypesFeature4.txt")

t0 = time.time()
results_dataframe_feature4 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature4[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '60.2142210007', 'seconds')
In [37]:
#Working with Phenotypes For feature 5
pheno_fn = Pheno("phenotypesFeature5.txt")

t0 = time.time()
results_dataframe_feature5 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature5[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.0564260483', 'seconds')
In [39]:
#Working with Phenotypes For feature 6
pheno_fn = Pheno("phenotypesFeature6.txt")

t0 = time.time()
results_dataframe_feature6 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature6[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.7171769142', 'seconds')
In [40]:
#Working with Phenotypes For feature 7
pheno_fn = Pheno("phenotypesFeature7.txt")

t0 = time.time()
results_dataframe_feature7 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature7[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.5670528412', 'seconds')
In [42]:
#Working with Phenotypes For feature 8
pheno_fn = Pheno("phenotypesFeature8.txt")

t0 = time.time()
results_dataframe_feature8 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature8[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.5051560402', 'seconds')
In [44]:
#Working with Phenotypes For feature 9
pheno_fn = Pheno("phenotypesFeature9.txt")

t0 = time.time()
results_dataframe_feature9 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature9[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.1383991241', 'seconds')
In [48]:
#Working with Phenotypes For feature 10
pheno_fn = Pheno("phenotypesFeature10.txt")

t0 = time.time()
results_dataframe_feature10 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature10[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.0807709694', 'seconds')
In [49]:
#Working with Phenotypes For feature 11
pheno_fn = Pheno("phenotypesFeature11.txt")

t0 = time.time()
results_dataframe_feature11 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature11[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.2827088833', 'seconds')
In [53]:
#Working with Phenotypes For feature 12
pheno_fn = Pheno("phenotypesFeature12.txt")

t0 = time.time()
results_dataframe_feature12 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature12[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '59.3078620434', 'seconds')
In [55]:
#Working with Phenotypes For feature 13
pheno_fn = Pheno("phenotypesFeature13.txt")

t0 = time.time()
results_dataframe_feature13 = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
t1 = time.time()

print ("Time taken for analysis =", str(t1-t0),"seconds")

flutil.manhattan_plot(results_dataframe_feature13[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
pylab.show()
('Time taken for analysis =', '60.1937351227', 'seconds')
In [56]:
#Working with Phenotypes for features 14-64
phenotype_file_name = "phenotypesFeature"
suffix = ".txt"

def gwasAnalysisWithManhattanPlot(pheno_fn):
    t0 = time.time()
    results_dataframe_feature_ = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
    t1 = time.time()

    print ("Time taken for analysis =", str(t1-t0),"seconds")
    
    flutil.manhattan_plot(results_dataframe_feature_[["Chr", "ChrPos", "PValue"]],pvalue_line=1e-5,xaxis_unit_bp=False)
    pylab.show()
    
for feature in range(14,65):
    pheno_fn = phenotype_file_name + str(feature) + suffix
#     print(pheno_fn)
    print("Single SNP GWAS on" +phenotype_file_name+str(feature))
    gwasAnalysisWithManhattanPlot(pheno_fn)
Single SNP GWAS onphenotypesFeature14
('Time taken for analysis =', '59.1376330853', 'seconds')
Single SNP GWAS onphenotypesFeature15
('Time taken for analysis =', '60.0331370831', 'seconds')
Single SNP GWAS onphenotypesFeature16
('Time taken for analysis =', '59.1014428139', 'seconds')
Single SNP GWAS onphenotypesFeature17
('Time taken for analysis =', '59.1981799603', 'seconds')
Single SNP GWAS onphenotypesFeature18
('Time taken for analysis =', '59.0387449265', 'seconds')
Single SNP GWAS onphenotypesFeature19
('Time taken for analysis =', '59.528190136', 'seconds')
Single SNP GWAS onphenotypesFeature20
('Time taken for analysis =', '59.1352930069', 'seconds')
Single SNP GWAS onphenotypesFeature21
('Time taken for analysis =', '59.4503910542', 'seconds')
Single SNP GWAS onphenotypesFeature22
('Time taken for analysis =', '59.1424410343', 'seconds')
Single SNP GWAS onphenotypesFeature23
('Time taken for analysis =', '59.8195428848', 'seconds')
Single SNP GWAS onphenotypesFeature24
('Time taken for analysis =', '59.5779509544', 'seconds')
Single SNP GWAS onphenotypesFeature25
('Time taken for analysis =', '59.2274110317', 'seconds')
Single SNP GWAS onphenotypesFeature26
('Time taken for analysis =', '59.0266129971', 'seconds')
Single SNP GWAS onphenotypesFeature27
('Time taken for analysis =', '59.4507601261', 'seconds')
Single SNP GWAS onphenotypesFeature28
('Time taken for analysis =', '59.0472438335', 'seconds')
Single SNP GWAS onphenotypesFeature29
('Time taken for analysis =', '59.3791911602', 'seconds')
Single SNP GWAS onphenotypesFeature30
('Time taken for analysis =', '59.1343750954', 'seconds')
Single SNP GWAS onphenotypesFeature31
('Time taken for analysis =', '59.43927598', 'seconds')
Single SNP GWAS onphenotypesFeature32
('Time taken for analysis =', '59.2497398853', 'seconds')
Single SNP GWAS onphenotypesFeature33
('Time taken for analysis =', '59.3986480236', 'seconds')
Single SNP GWAS onphenotypesFeature34
('Time taken for analysis =', '59.9328539371', 'seconds')
Single SNP GWAS onphenotypesFeature35
('Time taken for analysis =', '59.4268598557', 'seconds')
Single SNP GWAS onphenotypesFeature36
('Time taken for analysis =', '59.6540839672', 'seconds')
Single SNP GWAS onphenotypesFeature37
('Time taken for analysis =', '59.9051949978', 'seconds')
Single SNP GWAS onphenotypesFeature38
('Time taken for analysis =', '60.5846259594', 'seconds')
Single SNP GWAS onphenotypesFeature39
('Time taken for analysis =', '59.6349921227', 'seconds')
Single SNP GWAS onphenotypesFeature40
('Time taken for analysis =', '60.014482975', 'seconds')
Single SNP GWAS onphenotypesFeature41
('Time taken for analysis =', '59.5305628777', 'seconds')
Single SNP GWAS onphenotypesFeature42
('Time taken for analysis =', '59.1471741199', 'seconds')
Single SNP GWAS onphenotypesFeature43
('Time taken for analysis =', '59.315559864', 'seconds')
Single SNP GWAS onphenotypesFeature44
('Time taken for analysis =', '59.3631460667', 'seconds')
Single SNP GWAS onphenotypesFeature45
('Time taken for analysis =', '59.5796558857', 'seconds')
Single SNP GWAS onphenotypesFeature46
('Time taken for analysis =', '59.5105891228', 'seconds')
Single SNP GWAS onphenotypesFeature47
('Time taken for analysis =', '60.0227119923', 'seconds')
Single SNP GWAS onphenotypesFeature48
('Time taken for analysis =', '60.0457699299', 'seconds')
Single SNP GWAS onphenotypesFeature49
('Time taken for analysis =', '60.1855812073', 'seconds')
Single SNP GWAS onphenotypesFeature50
('Time taken for analysis =', '60.1985440254', 'seconds')
Single SNP GWAS onphenotypesFeature51
('Time taken for analysis =', '60.2390999794', 'seconds')
Single SNP GWAS onphenotypesFeature52
('Time taken for analysis =', '60.3731780052', 'seconds')
Single SNP GWAS onphenotypesFeature53
('Time taken for analysis =', '60.5477581024', 'seconds')
Single SNP GWAS onphenotypesFeature54
('Time taken for analysis =', '59.6034319401', 'seconds')
Single SNP GWAS onphenotypesFeature55
('Time taken for analysis =', '59.2600729465', 'seconds')
Single SNP GWAS onphenotypesFeature56
('Time taken for analysis =', '59.1849548817', 'seconds')
Single SNP GWAS onphenotypesFeature57
('Time taken for analysis =', '59.3471031189', 'seconds')
Single SNP GWAS onphenotypesFeature58
('Time taken for analysis =', '59.3871700764', 'seconds')
Single SNP GWAS onphenotypesFeature59
('Time taken for analysis =', '59.4293789864', 'seconds')
Single SNP GWAS onphenotypesFeature60
('Time taken for analysis =', '60.3680450916', 'seconds')
Single SNP GWAS onphenotypesFeature61
('Time taken for analysis =', '59.6967170238', 'seconds')
Single SNP GWAS onphenotypesFeature62
('Time taken for analysis =', '59.3208379745', 'seconds')
Single SNP GWAS onphenotypesFeature63
('Time taken for analysis =', '60.0380179882', 'seconds')
Single SNP GWAS onphenotypesFeature64
('Time taken for analysis =', '59.9855251312', 'seconds')
In [66]:
#QQ-Plots
from fastlmm.util.stats import plotp
#Working with Phenotypes for features 14-64
phenotype_file_name = "phenotypesFeature"
suffix = ".txt"

def gwasAnalysisWithQQPlot(pheno_fn):
    t0 = time.time()
    results_dataframe_feature_ = single_snp(test_snps=snp_data, pheno=pheno_fn, count_A1=False)
    t1 = time.time()
    print ("Time taken for analysis =", str(t1-t0),"seconds")
    print("\nQQ Plot")
    plotp.qqplot(results_dataframe_feature_["PValue"].values, xlim=[0,5], ylim=[0,5])
    pylab.show()
    
for feature in range(1,65):
    pheno_fn = phenotype_file_name + str(feature) + suffix
#     print(pheno_fn)
    print("Single SNP GWAS on" +phenotype_file_name+str(feature))
    gwasAnalysisWithQQPlot(pheno_fn)
Single SNP GWAS onphenotypesFeature1
('Time taken for analysis =', '60.8535990715', 'seconds')

QQ Plot
lambda=1.1516
Single SNP GWAS onphenotypesFeature2
('Time taken for analysis =', '60.3749980927', 'seconds')

QQ Plot
lambda=1.1000
Single SNP GWAS onphenotypesFeature3
('Time taken for analysis =', '60.7991259098', 'seconds')

QQ Plot
lambda=1.2538
Single SNP GWAS onphenotypesFeature4
('Time taken for analysis =', '60.690803051', 'seconds')

QQ Plot
lambda=1.3138
Single SNP GWAS onphenotypesFeature5
('Time taken for analysis =', '60.29165411', 'seconds')

QQ Plot
lambda=1.2603
Single SNP GWAS onphenotypesFeature6
('Time taken for analysis =', '60.0322909355', 'seconds')

QQ Plot
lambda=1.1575
Single SNP GWAS onphenotypesFeature7
('Time taken for analysis =', '61.1283860207', 'seconds')

QQ Plot
lambda=1.0026
Single SNP GWAS onphenotypesFeature8
('Time taken for analysis =', '60.4287669659', 'seconds')

QQ Plot
lambda=1.1938
Single SNP GWAS onphenotypesFeature9
('Time taken for analysis =', '60.7871990204', 'seconds')

QQ Plot
lambda=1.4000
Single SNP GWAS onphenotypesFeature10
('Time taken for analysis =', '60.7250249386', 'seconds')

QQ Plot
lambda=0.9138
Single SNP GWAS onphenotypesFeature11
('Time taken for analysis =', '60.9023959637', 'seconds')

QQ Plot
lambda=1.1059
Single SNP GWAS onphenotypesFeature12
('Time taken for analysis =', '60.6671099663', 'seconds')

QQ Plot
lambda=0.9832
Single SNP GWAS onphenotypesFeature13
('Time taken for analysis =', '60.727025032', 'seconds')

QQ Plot
lambda=0.9935
Single SNP GWAS onphenotypesFeature14
('Time taken for analysis =', '60.4956738949', 'seconds')

QQ Plot
lambda=0.8625
Single SNP GWAS onphenotypesFeature15
('Time taken for analysis =', '60.4346811771', 'seconds')

QQ Plot
lambda=1.3195
Single SNP GWAS onphenotypesFeature16
('Time taken for analysis =', '61.0362319946', 'seconds')

QQ Plot
lambda=1.1162
Single SNP GWAS onphenotypesFeature17
('Time taken for analysis =', '60.7626888752', 'seconds')

QQ Plot
lambda=1.0560
Single SNP GWAS onphenotypesFeature18
('Time taken for analysis =', '60.8102550507', 'seconds')

QQ Plot
lambda=1.2410
Single SNP GWAS onphenotypesFeature19
('Time taken for analysis =', '61.0452649593', 'seconds')

QQ Plot
lambda=0.9503
Single SNP GWAS onphenotypesFeature20
('Time taken for analysis =', '60.1020309925', 'seconds')

QQ Plot
lambda=0.7784
Single SNP GWAS onphenotypesFeature21
('Time taken for analysis =', '60.0499989986', 'seconds')

QQ Plot
lambda=1.4668
Single SNP GWAS onphenotypesFeature22
('Time taken for analysis =', '60.7274329662', 'seconds')

QQ Plot
lambda=0.7537
Single SNP GWAS onphenotypesFeature23
('Time taken for analysis =', '61.2151079178', 'seconds')

QQ Plot
lambda=1.0980
Single SNP GWAS onphenotypesFeature24
('Time taken for analysis =', '60.9360229969', 'seconds')

QQ Plot
lambda=1.5644
Single SNP GWAS onphenotypesFeature25
('Time taken for analysis =', '63.1754829884', 'seconds')

QQ Plot
lambda=0.9512
Single SNP GWAS onphenotypesFeature26
('Time taken for analysis =', '67.3420679569', 'seconds')

QQ Plot
lambda=1.2545
Single SNP GWAS onphenotypesFeature27
('Time taken for analysis =', '66.5036070347', 'seconds')

QQ Plot
lambda=1.0691
Single SNP GWAS onphenotypesFeature28
('Time taken for analysis =', '67.167963028', 'seconds')

QQ Plot
lambda=1.4021
Single SNP GWAS onphenotypesFeature29
('Time taken for analysis =', '66.7096710205', 'seconds')

QQ Plot
lambda=1.2477
Single SNP GWAS onphenotypesFeature30
('Time taken for analysis =', '62.5787131786', 'seconds')

QQ Plot
lambda=0.9745
Single SNP GWAS onphenotypesFeature31
('Time taken for analysis =', '60.9078888893', 'seconds')

QQ Plot
lambda=1.4407
Single SNP GWAS onphenotypesFeature32
('Time taken for analysis =', '60.9241230488', 'seconds')

QQ Plot
lambda=0.9585
Single SNP GWAS onphenotypesFeature33
('Time taken for analysis =', '61.6663780212', 'seconds')

QQ Plot
lambda=0.7906
Single SNP GWAS onphenotypesFeature34
('Time taken for analysis =', '64.2135620117', 'seconds')

QQ Plot
lambda=0.7996
Single SNP GWAS onphenotypesFeature35
('Time taken for analysis =', '63.8924980164', 'seconds')

QQ Plot
lambda=1.0202
Single SNP GWAS onphenotypesFeature36
('Time taken for analysis =', '63.3021090031', 'seconds')

QQ Plot
lambda=1.1497
Single SNP GWAS onphenotypesFeature37
('Time taken for analysis =', '60.9466280937', 'seconds')

QQ Plot
lambda=1.1050
Single SNP GWAS onphenotypesFeature38
('Time taken for analysis =', '60.541228056', 'seconds')

QQ Plot
lambda=1.0335
Single SNP GWAS onphenotypesFeature39
('Time taken for analysis =', '60.7537250519', 'seconds')

QQ Plot
lambda=0.9451
Single SNP GWAS onphenotypesFeature40
('Time taken for analysis =', '60.4402940273', 'seconds')

QQ Plot
lambda=1.1398
Single SNP GWAS onphenotypesFeature41
('Time taken for analysis =', '60.6639070511', 'seconds')

QQ Plot
lambda=0.8316
Single SNP GWAS onphenotypesFeature42
('Time taken for analysis =', '61.3167278767', 'seconds')

QQ Plot
lambda=0.9423
Single SNP GWAS onphenotypesFeature43
('Time taken for analysis =', '60.847525835', 'seconds')

QQ Plot
lambda=1.1383
Single SNP GWAS onphenotypesFeature44
('Time taken for analysis =', '61.1293058395', 'seconds')

QQ Plot
lambda=1.0030
Single SNP GWAS onphenotypesFeature45
('Time taken for analysis =', '61.4216048717', 'seconds')

QQ Plot
lambda=0.9565
Single SNP GWAS onphenotypesFeature46
('Time taken for analysis =', '61.1142389774', 'seconds')

QQ Plot
lambda=1.0736
Single SNP GWAS onphenotypesFeature47
('Time taken for analysis =', '61.0777199268', 'seconds')

QQ Plot
lambda=1.1093
Single SNP GWAS onphenotypesFeature48
('Time taken for analysis =', '60.9350869656', 'seconds')

QQ Plot
lambda=0.8717
Single SNP GWAS onphenotypesFeature49
('Time taken for analysis =', '60.6942508221', 'seconds')

QQ Plot
lambda=1.1778
Single SNP GWAS onphenotypesFeature50
('Time taken for analysis =', '60.9219360352', 'seconds')

QQ Plot
lambda=1.3444
Single SNP GWAS onphenotypesFeature51
('Time taken for analysis =', '61.2090909481', 'seconds')

QQ Plot
lambda=0.9989
Single SNP GWAS onphenotypesFeature52
('Time taken for analysis =', '60.3725481033', 'seconds')

QQ Plot
lambda=1.0443
Single SNP GWAS onphenotypesFeature53
('Time taken for analysis =', '60.992002964', 'seconds')

QQ Plot
lambda=0.9830
Single SNP GWAS onphenotypesFeature54
('Time taken for analysis =', '59.8121140003', 'seconds')

QQ Plot
lambda=0.9765
Single SNP GWAS onphenotypesFeature55
('Time taken for analysis =', '60.7820048332', 'seconds')

QQ Plot
lambda=0.9065
Single SNP GWAS onphenotypesFeature56
('Time taken for analysis =', '60.5867650509', 'seconds')

QQ Plot
lambda=0.9397
Single SNP GWAS onphenotypesFeature57
('Time taken for analysis =', '60.8049590588', 'seconds')

QQ Plot
lambda=0.7957
Single SNP GWAS onphenotypesFeature58
('Time taken for analysis =', '60.1990809441', 'seconds')

QQ Plot
lambda=1.1429
Single SNP GWAS onphenotypesFeature59
('Time taken for analysis =', '60.67821908', 'seconds')

QQ Plot
lambda=0.8711
Single SNP GWAS onphenotypesFeature60
('Time taken for analysis =', '61.0307488441', 'seconds')

QQ Plot
lambda=1.1739
Single SNP GWAS onphenotypesFeature61
('Time taken for analysis =', '61.1530900002', 'seconds')

QQ Plot
lambda=0.7597
Single SNP GWAS onphenotypesFeature62
('Time taken for analysis =', '60.9424569607', 'seconds')

QQ Plot
lambda=0.7772
Single SNP GWAS onphenotypesFeature63
('Time taken for analysis =', '60.0490181446', 'seconds')

QQ Plot
lambda=1.2569
Single SNP GWAS onphenotypesFeature64
('Time taken for analysis =', '60.7734839916', 'seconds')

QQ Plot
lambda=0.8660